home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS12.ADF / AmigaBBS / menus (.txt) < prev    next >
AmigaBASIC Source Code  |  1986-08-05  |  9KB  |  189 lines

  1. ON BREAK GOSUB Teflon
  2.  
  3. Main:
  4. GOSUB Menus
  5. CHAIN "df1:BBS1",10,ALL
  6.  
  7. Modem:
  8. IF rings=0 THEN OtherModem
  9. x=FRE(0):FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
  10. PRINT p$;:PRINT#1,p$;:NEXT j:a$="":p$="":RETURN
  11.  
  12. OtherModem:
  13. x=FRE(0):FOR j= 1 TO LEN(a$):p$=MID$(a$,j,1)
  14. PRINT p$;:NEXT j:a$="":p$="":RETURN
  15.  
  16. Answers:
  17. telly=0:t$="":t=0:i$="":ch$="":alter=0:IF rings=0 THEN SomeAnswers
  18. WHILE 1 AND alter<1
  19.   WHILE LOC(1)<>0
  20.     ch$=INPUT$(1,1)
  21.     equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
  22.     i$=i$+ch$:equivs=0
  23.     telly=telly+1:IF telly=78 THEN ch$=r$:telly=0
  24.     IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2):telly=telly-2
  25.     IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN alter=3:telly=0
  26.     a$=ch$:GOSUB Modem:ch$="":connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN okp=0:RETURN
  27.   WEND
  28.   ch$=INKEY$:i$=i$+ch$
  29.   a$=ch$:GOSUB Modem
  30.   IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN telly=0:GOTO MoreAnswers
  31.   IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  32.   ch$="":connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN okp=0:RETURN
  33. WEND
  34. IF i$<>"" THEN MoreAnswers
  35. SomeAnswers:
  36. ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
  37. IF ch$= CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN MoreAnswers
  38. IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  39. ch$=""
  40. GOTO SomeAnswers
  41. MoreAnswers:
  42. IF okp<>1 THEN RETURN
  43. IF i$="" THEN ch$="":GOTO Answers
  44. t$=i$:IF LEN(t$)>80 THEN t$=LEFT$(t$,78)+r$
  45. RETURN
  46.  
  47. Menus:
  48. IF okp<>1 THEN RETURN
  49. EntTime$=TIME$:a$=r$+r$+"Date:"+DATE$+" Time:"+TIME$+r$:GOSUB Modem
  50. Veru=VAL(Veru$):IF Veru>1 THEN UserSelect1
  51. MenuChoices1:
  52. file$="df1:PubMenu":GOSUB SeqRead
  53. UserSelect1:
  54. 10 REM
  55. IF okp<>1 AND ellen=0 THEN RETURN 
  56. IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL 
  57. GOSUB CheckConTime:IF okp<>1 AND ellen=0THEN RETURN
  58. IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL 
  59. MenS$="":a$=r$+"Main (? for menu):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,LEN(t$)-1))
  60. IF LEN(MenS$)>3 THEN MenS$=LEFT$(MenS$,3)
  61. IF MenS$="C" THEN Chat
  62. IF MenS$="G" AND ellen=0 OR MenS$="BYE" AND ellen=0 OR MenS$="OFF" AND ellen=0 THEN RETURN
  63. IF MenS$="G" OR MenS$="BYE" OR MenS$="OFF" THEN CHAIN "df1:BBS1",10,ALL
  64. IF MenS$="H" THEN file$="df1:Help":GOSUB SeqRead:GOTO MenuChoices1
  65. IF MenS$="A" THEN file$="df1:Ann.":GOSUB SeqRead:GOTO UserSelect1
  66. IF MenS$="N" THEN NewsMenu
  67. IF MenS$="M" THEN ellen=1:CHAIN "df0:mail",,ALL
  68. IF MenS$="F" THEN ellen=1:CHAIN "df0:sysmail",,ALL
  69. IF MenS$="T" THEN NowTime
  70. IF MenS$="Y" THEN Status
  71. IF MenS$="?" THEN MenuChoices1
  72. IF MenS$="V" THEN ValidMenu
  73. a$=r$+"No such command."+r$:GOSUB Modem:GOTO UserSelect1
  74.  
  75. SeqRead:
  76. ERASE ABCS$:DIM ABCS$(185)
  77. a$=r$+r$+"[>                                K Quits                               <]"+r$+r$:GOSUB Modem
  78. OPEN "I", #3, file$
  79. ReadSeq:
  80. j=0:L=0:k=0:Countl=0
  81. WHILE NOT EOF(3)
  82.   x=FRE(0):j=j+1
  83.   LINE INPUT#3,ABCS$(j):ABCS$(j)=ABCS$(j)+r$
  84. WEND
  85. CLOSE#3:k=j:L=0:Detect=0
  86. WHILE L<k
  87.   L=L+1:a$=ABCS$(L):GOSUB Modem
  88.   CheckSeq:
  89.   t$="":t=0:i$="":ch$="":IF rings=0 THEN SomeCheckSeq
  90.   WHILE LOC(1)<>0
  91.     ch$=INPUT$(1,1):equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
  92.     i$=i$+ch$:equivs=0:a$=ch$:GOSUB Modem
  93.   WEND
  94.   IF i$<>"" THEN MoreCheckSeq
  95.   SomeCheckSeq:
  96.   ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
  97.   OtherCheckSeq:
  98.   IF Detect=1 GOTO MoreCheckSeq
  99.   Countl=Countl+1:IF Countl=24 THEN a$=r$+"More (y,n,c)?":GOSUB A1
  100.   IF Countl=24 THEN MenS$=UCASE$(LEFT$(t$,1)):IF MenS$="N" THEN L=k+1
  101.   IF Countl=24 AND MenS$="Y" THEN Countl=0
  102.   IF Countl=24 AND MenS$="C" THEN Detect=1
  103.   IF Countl=24 AND Detect<>1 THEN Countl=0
  104.   MoreCheckSeq:
  105.   IF i$=CHR$(75) OR i$=CHR$(107) THEN L=k+1
  106. WEND
  107. ERASE ABCS$:DIM ABCS$(185):RETURN
  108.  
  109. A1:
  110. GOSUB Modem:GOSUB Answers:RETURN
  111.  
  112. ValidMenu:
  113. 20 IF okp<>1 AND ellen=0 THEN RETURN
  114. IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL 
  115. GOSUB CheckConTime:IF okp<>1 AND ellen=0THEN RETURN
  116. IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL 
  117. MenS$="":a$=r$+"Valid (? for menu):":GOSUB A1:MenS$=UCASE$(t$)
  118. IF LEN(MenS$)>=3 THEN MenS$=LEFT$(MenS$,2) :ELSE MenS$=LEFT$(MenS$,1)
  119. Meni=VAL(MenS$):IF Meni>=1 AND Meni<=9 THEN MenS$=LEFT$(MenS$,1):ellen=1:zl$="FmT"+MenS$:CHAIN "df0:Boards",,ALL
  120. IF MenS$="G" AND ellen=0 OR MenS$="OFF" AND ellen=0 OR MenS$="BYE" AND ellen=0 THEN RETURN
  121. IF MenS$="G" OR MenS$="OFF" OR MenS$="BYE" THEN CHAIN "df1:BBS1",10,ALL
  122. IF MenS$="?" THEN file$="df1:ValidMenu":GOSUB SeqRead:GOTO ValidMenu
  123. IF MenS$="X" THEN UserSelect1
  124. IF Veru$="000" THEN a$=r$+"Not validated for that command.":GOSUB Modem:GOTO ValidMenu
  125. IF MenS$="V" THEN ellen=1:CHAIN "df0:Voting",,ALL
  126. IF MenS$="PW" THEN PassChange
  127. IF MenS$="DL" THEN a$=r$+"Not available yet.":GOSUB Modem:GOTO ValidMenu
  128. IF MenS$="UL" THEN a$=r$+"Not available yet.":GOSUB Modem:GOTO ValidMenu
  129. IF Veru$="014" OR Veru$="021" AND MenS$="S" THEN ellen=1:CHAIN "df0:Sysop",,ALL
  130. a$=r$+"No such Command."+r$:GOSUB Modem:GOTO ValidMenu
  131.  
  132. NewsMenu:
  133. IF okp<>1 AND ellen=0 THEN RETURN
  134. IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL 
  135. GOSUB CheckConTime:IF okp<>1 AND ellen=0 THEN RETURN
  136. IF okp<>1 AND ellen=1 THEN CHAIN "df1:BBS1",10,ALL 
  137. MenS$="":Meni=0:a$=r$+"News (? for menu):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  138. Meni=VAL(MenS$):IF Meni>=1 AND Meni<=9 THEN file$="df1:G"+MenS$:GOSUB SeqRead:GOTO NewsMenu
  139. IF MenS$="?" THEN file$="df1:NewsMenu":GOSUB SeqRead:GOTO NewsMenu
  140. IF MenS$="X" THEN UserSelect1
  141. a$=r$+"No such command.":GOSUB Modem:GOTO NewsMenu
  142.  
  143. NowTime:
  144. a$=r$+"Time:"+TIME$:GOSUB Modem:a$=r$+"Time you logged on:"+EntTime$+r$:GOSUB Modem:GOTO UserSelect1
  145.  
  146. CheckConTime:
  147. Contime$=TIME$:ChEntTime$=RIGHT$(EntTime$,5):Contime$=RIGHT$(Contime$,5):Contime=VAL(Contime$):EntTime=VAL(ChEntTime$)
  148. IF Contime-EntTime>30 AND Veru$="000" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN
  149. IF Contime-EntTime>45 AND Veru$="007" THEN okp=0:a$=r$+"Time limit exceeded."+r$:GOSUB Modem:RETURN
  150. okp=1:RETURN
  151.  
  152. Status:
  153. a$=r$+"Name:"+Name1$+" "+Name2$+r$+"User No.:"+UserID$+r$+"Password:"+Password$:GOSUB Modem
  154. a$=r$+"Status:"+Veru$+r$:GOSUB Modem:GOTO UserSelect1
  155.  
  156. PassChange:
  157. a$=r$+"Current Password is:"+r$+Password$:GOSUB Modem
  158. a$=r$+"Change to:"+r$+":":GOSUB A1:NPassWord$=UCASE$(LEFT$(t$,LEN(t$)-1))
  159. IF LEN(NPassWord$)<4 OR LEN(NPassWord$)>9 THEN PassChange
  160. a$=r$+"Old Password:"+Password$+r$+"New Password:"+NPassWord$:GOSUB Modem:a$=r$+"Adopt New Password (Y or N):":GOSUB A1:MenS$=UCASE$(LEFT$(t$,1))
  161. IF MenS$="N" THEN a$=r$+"Change Aborted.":GOSUB Modem:GOTO ValidMenu
  162. IF MenS$="Y" THEN Password$=NPassWord$
  163. GOTO ValidMenu
  164.  
  165. Teflon:
  166. IF teetse=1 THEN a$=r$+"Sorry, not allowed!":GOSUB Modem:okp=1:GOTO Menus
  167. IF teetse=0 THEN ltomr=1:teetse=1:RETURN
  168. RETURN
  169.  
  170. Chat:
  171. ltomr=0:teetse=0:ch$="":telly=0
  172. a$=r$+" Use / to exit"+r$+r$:GOSUB Modem
  173. WHILE ltomr<1
  174.   WHILE LOC(1)<>0
  175.     ch$=INPUT$(1,1):equivs=ASC(ch$) AND 127
  176.     IF equivs<>1 THEN ch$=CHR$(equivs)
  177.     connect=PEEK (&Hbfd*&H1000+&H0):IF connect=40 OR connect=232 THEN okp=0:GOTO UserSelect1
  178.     IF ch$=CHR$(8) THEN telly=telly-1
  179.     IF ch$=CHR$(10) OR ch$=CHR$(13) THEN ch$=r$:telly=0
  180.     i$=i$+ch$:equivs=0:PRINT  ch$;:PRINT#1,ch$;:IF ch$="/" THEN ltomr=3
  181.     telly=telly+1:IF telly=78 THEN ch$=r$:PRINT ch$:PRINT#1,ch$:telly=0
  182.     ch$=""
  183.   WEND
  184.   i$=INKEY$:IF i$<>"" THEN PRINT #1,i$;:PRINT i$;:telly=0
  185.   IF i$="/" THEN ltomr=3
  186. WEND
  187. teetse=1:GOTO UserSelect1
  188.  
  189.